﻿using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.UI;
using Antares.QRCode;


public class G_Sc : MonoBehaviour {

    public InputField input;
    public Text text;

    private string uploadURL = "http://39.98.84.136/UpLoadImage.aspx";

    //public Text tmpAddress;
    //用来存储显示服务器发来的图片地址的Text组件

    public Image QR;
    //用来储存二维码的image组件

    private Texture2D Te_QR;
    //用来储存最开始生成的二维码

    public GameObject confirmWindow;

    // Use this for initialization
    void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}

    public void InputName()
    {
        text.text = input.text;
    }

    public void ScreenShoot()
    {
        StartCoroutine(WaitFrameBuffer());
    }

    IEnumerator WaitFrameBuffer()
    {
        yield return new WaitForEndOfFrame();
        Texture2D Te = new Texture2D(600, 800, TextureFormat.RGB24, false);
        Te.ReadPixels(new Rect(100, 100, 600, 800), 0, 0, true);
        Te.Apply();
        byte[] bytes = Te.EncodeToJPG();

        //File.WriteAllBytes(Application.dataPath + "/ScreenShot.png", bytes);

        WWWForm wwwForm = new WWWForm();
        //WWWForm是网络表单，用来生成表单数据，使用www类传递到Web服务器

        wwwForm.AddBinaryData("post", bytes);
        //将转化为二进制数组的图片以及服务器接口添加至网络表单之中

        WWW www = new WWW(uploadURL, wwwForm);
        //使用WWW来与Web服务器进行交互 参数为服务器地址和网络表单

        StartCoroutine(postImage(www));
        //调用获取下列地址的协程函数 并且将www作为参数传入
    }

    IEnumerator postImage(WWW www)
    {
        yield return www;
        //等待www进程结束之后，再执行以下的内容

        //tmpAddress.text = www.text;

        Encode_QR(www.text);
        //将服务器返回的地址传入这个函数当中

        confirmWindow.SetActive(false);
    }

    public void Encode_QR(string Pic_Address)
    {
        Te_QR = QRCodeProcessor.Encode(Pic_Address,256,256,ErrorCorrectionLevel.H,"Dude..:D");
        //参数的第一个位置是用来生成二维码的字符串
        //把生成的二维码储存在Texture2D 类型变量中
        Sprite tmpSprite = Sprite.Create(Te_QR,new Rect(0,0,256,256),new Vector2(0f,0f));
        //将Te_QR 转化为Sprite类型

        QR.sprite = tmpSprite;
        //将生成的二维码Sprite赋值给显示二维码的Image组件
    }
}